package com.umpay.dto.merBusi.req.consume;

import com.umpay.annotation.Pattern;
import com.umpay.dto.merAccess.req.consume.SubOrderInfo;
import com.umpay.dto.merBusi.req.CommonBusiReq;
import com.umpay.dto.merBusi.req.warrant.WarrantSplitCmdBusi;

import org.hibernate.validator.constraints.NotEmpty;

import java.util.List;

/*******************************************************************
 * description : 虚拟支付请求业务线接口
 * @author zhangru
 * @date 2018年12月18日 上午10:24:26
 * @version 1.0
 *******************************************************************/
public class ConsumeVirtualPaymentBusiReq extends CommonBusiReq {
	
	@NotEmpty(message = "商户订单号不能为空")
	@Pattern(message="商户订单号格式不正确")
	private String orderId;	//变长32	商户订单号
	
	@NotEmpty(message = "商户订单日期不能为空")
	@Pattern(message="商户订单日期格式不正确")
	private String orderDate;	//定长8	商户订单日期
	
	@NotEmpty(message = "商户号不能为空")
	@Pattern(message="商户号格式不正确")
	private String merId;	//变长8	商户号
	
	@NotEmpty(message = "金额不能为空")
	@Pattern(message="金额格式不正确")
	private String amount;	//变长13	金额
	
	@NotEmpty(message = "结算金额不能为空")
	@Pattern(message="结算金额格式不正确")
	private String settleAmt;	//变长13	结算金额
	
	@NotEmpty(message = "订单类型不能为空")
	@Pattern(message="订单类型格式不正确")
	private String orderType;	//定长1
	
	@NotEmpty(message = "交易渠道不能为空")
	@Pattern(message="交易渠道格式不正确")
	private String orderChannel;	//定长1
	
	@NotEmpty(message = "支付方式不能为空")
	@Pattern(message="支付方式格式不正确")
	private String payType;	//	变长16	支付方式	Y
	
	@NotEmpty(message = "业务产品号不能为空")
	@Pattern(message="业务产品号格式不正确")
	private String bproductId;	//变长8	业务产品号
	
	@NotEmpty(message = "支付产品号不能为空")
	@Pattern(message="支付产品号格式不正确")
	private String productId;	//变长8	支付产品号
	
	@NotEmpty(message = "支付产品号不能为空")
	@Pattern(message="支付产品号格式不正确")
	private String pproductId;	//变长8	支付产品号
	
	@Pattern(message="购买方会员编号格式不正确")
	private String outUserId;	//	变长 20	购买方会员编号	N
	@Pattern(message="购买方会员类型格式不正确")
	private String outUserType;	//	变长 20	购买方会员编号	N
	
	private String consigneeName;	//变长32	收货人
	private String consigneeAddress;	//变长50	收货地址
	private String consigneePhone;	//定长11	联系电话
//	@NotEmpty(message = "后台通知地址不能为空")
	@Pattern(message="后台通知地址格式不正确")
	private String notifyUrl;	//变长128	后台通知地址
//	@NotEmpty(message = "前台通知地址不能为空")
	@Pattern(message="前台通知地址格式不正确")
	private String retUrl;	//变长128	前台通知地址
	private String remark;	//变长100	备注信息
	private List<SubOrderInfo> sub_order_info;	//变长列表	子订单信息
	private List<WarrantSplitCmdBusi> splitCmdBusi;	//变长列表	分账信息
	
	public String getOrderId() {
		return orderId;
	}
	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}
	public String getOrderDate() {
		return orderDate;
	}
	public void setOrderDate(String orderDate) {
		this.orderDate = orderDate;
	}
	public String getMerId() {
		return merId;
	}
	public void setMerId(String merId) {
		this.merId = merId;
	}
	public String getAmount() {
		return amount;
	}
	public void setAmount(String amount) {
		this.amount = amount;
	}
	public String getOrderType() {
		return orderType;
	}
	public void setOrderType(String orderType) {
		this.orderType = orderType;
	}
	public String getOrderChannel() {
		return orderChannel;
	}
	public void setOrderChannel(String orderChannel) {
		this.orderChannel = orderChannel;
	}
	public String getPayType() {
		return payType;
	}
	public void setPayType(String payType) {
		this.payType = payType;
	}
	public String getBproductId() {
		return bproductId;
	}
	public void setBproductId(String bproductId) {
		this.bproductId = bproductId;
	}
	public String getPproductId() {
		return pproductId;
	}
	public void setPproductId(String pproductId) {
		this.pproductId = pproductId;
	}
	public String getOutUserId() {
		return outUserId;
	}
	public void setOutUserId(String outUserId) {
		this.outUserId = outUserId;
	}
	public String getConsigneeName() {
		return consigneeName;
	}
	public void setConsigneeName(String consigneeName) {
		this.consigneeName = consigneeName;
	}
	public String getConsigneeAddress() {
		return consigneeAddress;
	}
	public void setConsigneeAddress(String consigneeAddress) {
		this.consigneeAddress = consigneeAddress;
	}
	public String getConsigneePhone() {
		return consigneePhone;
	}
	public void setConsigneePhone(String consigneePhone) {
		this.consigneePhone = consigneePhone;
	}
	public String getNotifyUrl() {
		return notifyUrl;
	}
	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}
	public String getRetUrl() {
		return retUrl;
	}
	public void setRetUrl(String retUrl) {
		this.retUrl = retUrl;
	}
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}
	public List<WarrantSplitCmdBusi> getSplitCmdBusi() {
		return splitCmdBusi;
	}
	public void setSplitCmdBusi(List<WarrantSplitCmdBusi> splitCmdBusi) {
		this.splitCmdBusi = splitCmdBusi;
	}
	
	public String getProductId() {
		return productId;
	}
	public void setProductId(String productId) {
		this.productId = productId;
	}
	
	public String getSettleAmt() {
		return settleAmt;
	}
	public void setSettleAmt(String settleAmt) {
		this.settleAmt = settleAmt;
	}
	
	public String getOutUserType() {
		return outUserType;
	}
	public void setOutUserType(String outUserType) {
		this.outUserType = outUserType;
	}
	
	public List<SubOrderInfo> getSub_order_info() {
		return sub_order_info;
	}
	public void setSub_order_info(List<SubOrderInfo> sub_order_info) {
		this.sub_order_info = sub_order_info;
	}
	@Override
	public String toString() {
		return "ConsumeVirtualPaymentBusiReq ["+super.toString()+", orderId=" + orderId + ", orderDate=" + orderDate + ", merId=" + merId
		        + ", amount=" + amount + ", settleAmt=" + settleAmt + ", orderType=" + orderType + ", orderChannel="
		        + orderChannel + ", payType=" + payType + ", bproductId=" + bproductId + ", productId=" + productId
		        + ", pproductId=" + pproductId + ", outUserId=" + outUserId + ", outUserType=" + outUserType
		        + ", consigneeName=" + consigneeName + ", consigneeAddress=" + consigneeAddress + ", consigneePhone="
		        + consigneePhone + ", notifyUrl=" + notifyUrl + ", retUrl=" + retUrl + ", remark=" + remark
		        + ", sub_order_info=" + sub_order_info + ", splitCmdBusi=" + splitCmdBusi + "]";
	}
	
	
}
